﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
//using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
//using System.Xml.Linq;
using System.Data.SqlClient;
using System.Xml;

public partial class productos_EditarProducto : System.Web.UI.Page
{
    clsConexion conexion = new clsConexion();
    String strConection = ConfigurationManager.AppSettings["cnfConexion"];
    
    protected void Page_Load(object sender, EventArgs e)
    {   
        if (!Page.IsPostBack)
        {
            Session["id"]  =  Request.QueryString["ID"];
            String comando = "select d.nombre rubro,a.producto id, a.nombre producto, " +
                            "a.descripcion,c.nombre unidad, " +
                            "round(a.precio,2) precio,e.nombre moneda,b.nombre estado " +
                            "from producto a, " +
                            "estado_producto b, " +
                            "unidad_medida c, " +
                            "rubro d, " +
                            "moneda e " +
                            "where a.id_estado=b.estado_producto " +
                            "and a.id_unidad_medida=c.unidad_medida " +
                            "and a.id_rubro=d.rubro " +
                            "and a.id_moneda=e.moneda " +
                            "and a.producto=" + Session["id"].ToString();

            using (SqlConnection cnn = new SqlConnection(strConection))
            {
                cnn.Open();
                SqlCommand cm = new SqlCommand(comando, cnn);
                SqlDataReader reader = cm.ExecuteReader();
                if (reader.Read())
                {
                    txtRubro.Text = reader.GetString(reader.GetOrdinal("rubro"));
                    txtProducto.Text = reader.GetString(reader.GetOrdinal("producto"));
                    txtDescripcion.Text = reader.GetString(reader.GetOrdinal("descripcion"));
                    txtMedida.Text = reader.GetString(reader.GetOrdinal("unidad"));
                    txtPrecio.Text = reader.GetDecimal(reader.GetOrdinal("precio")).ToString();
                    txtMoneda.Text = reader.GetString(reader.GetOrdinal("moneda"));
                    txtEstado.Text = reader.GetString(reader.GetOrdinal("estado"));
                }
            }

            String rubroSql = "select rubro,nombre from rubro";
            DataSet dt = conexion.fEjecutaQueryDS(rubroSql);
            this.ddlRubro.DataSource = dt;
            this.ddlRubro.DataValueField = "rubro";
            this.ddlRubro.DataTextField = "nombre";
            this.ddlRubro.DataBind();

            String medidaSql = "select unidad_medida,nombre from unidad_medida";
            dt = conexion.fEjecutaQueryDS(medidaSql);
            this.ddlMedida.DataSource = dt;
            this.ddlMedida.DataValueField = "unidad_medida";
            this.ddlMedida.DataTextField = "nombre";
            this.ddlMedida.DataBind();

            String monedaSql = "select moneda,nombre from moneda";
            dt = conexion.fEjecutaQueryDS(monedaSql);
            this.ddlMoneda.DataSource = dt;
            this.ddlMoneda.DataValueField = "moneda";
            this.ddlMoneda.DataTextField = "nombre";
            this.ddlMoneda.DataBind();

            String estadoSql = "select estado_producto,nombre from estado_producto";
            dt = conexion.fEjecutaQueryDS(estadoSql);
            this.ddlEstado.DataSource = dt;
            this.ddlEstado.DataValueField = "estado_producto";
            this.ddlEstado.DataTextField = "nombre";
            this.ddlEstado.DataBind();
        }
    }
    protected void lnkGuardar_Click(object sender, EventArgs e)
    {   
        String updateSql = "UPDATE producto "+
                           " SET id_rubro = "+ ddlRubro.SelectedValue.ToString() +
                           "   ,nombre =  '"+txtProducto.Text+"'"+
                           "   ,descripcion = '" + txtDescripcion.Text + "'" +
                           "   ,id_unidad_medida = "+ ddlMedida.SelectedValue.ToString() +
                           "   ,precio = "+ txtPrecio.Text +
                           "   ,id_moneda = "+ ddlMoneda.SelectedValue.ToString() +
                           "   ,id_estado = " + ddlEstado.SelectedValue.ToString() +
                           " WHERE producto=" + Session["id"].ToString();
        using (SqlConnection cnn = new SqlConnection(strConection))
        {
            cnn.Open();
            SqlCommand cm = new SqlCommand(updateSql, cnn);
            cm.ExecuteNonQuery();
            Response.Redirect("/guatemala-logistic/productos/ListaProductos.aspx");
        }
    }
    protected void lnkCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("/guatemala-logistic/productos/ListaProductos.aspx");
    }
}
